<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

/**
 * Controlador encargador de manejar la transaccion realizad con socialpay.
 *
 */

class socialPay extends GUARIPOLO_Controller {

	public function index()
	{
		
	}
	public function buy()
	{
		
		//creando el objeto facebook
		$this->load->library('facebook',array(
				'appId'  => '339581436114045',
				'secret' => 'f1e079e52e936aecbf44c3cf4784b4ad',
				'coockie'=> 'true',
		));
		$facebook=$this->facebook;
		$user = $facebook->getUser();
		
		if ($user)
		{
			try
			{
				$user_profile = $facebook->api('/me');
			}
			catch (FacebookApiException $e)
			{
				error_log($e);
				$user = null;
			}
		}
		//comprobacion de logeo con la guaripolo app
		if ($user)
		{
			//comprobacion de parametros recibidos por post
			if(!isset($_POST['ids'])||!isset($_POST['precs'])||!isset($_POST['cants']))
				echo '<script type="text/javascript">
				window.location = "'.base_url().'carrito"</script>';
			
			$logoutUrl = $facebook->getLogoutUrl();
			
			$ids=explode(";", substr($_POST['ids'],0,-1));
			$precs= explode(";",  substr($_POST['precs'],0,-1));
			$cants= explode(";",  substr($_POST['cants'],0,-1));
			$params1=array( 'method' => 'fql.query','query' => " SELECT url FROM url_like WHERE user_id = me()" );
			$r1 = $facebook->api($params1);
			
			//comprobracion de likes
			foreach($ids as $id)
			{
				$c=0;
				
				foreach($r1 as $link)
				{
				
					if($id.""==str_replace(base_url()."cproducto/listarproducto/", "",$link['url']))
					{	
						$c=1;
					}
					
				}
				if($c==0)
					break;
			}
			//comprobacion de cantidad por unidad maxima =1
			if($c==1)
			{
				foreach($cants as $cant)
				{
	
					if($cant>1)
					{
						$c=0;
						break;
					}
				}
				//si es todo correcto , proceder con la compra
				if($c==1)
				{
					
					$this->load->database('local');
					$this->db->query('insert into carro_historico SELECT *,"social" FROM carro where idUsuarios='.$this->usuario->getIdUsuarios());
					$this->db->query('update carro_historico set fecha=now() where carro_historico_id='.$this->usuario->getCarro()->getIdCarro());
						
					
					$q=$this->usuario->getCarro()->getAllProductos();
					$productos=$q->result();
					foreach($productos as $producto)
					{
						$q2=$this->db->query('select * from producto_historico where 	producto_historico_id='.$producto->idProductos);
						$r=$q2->row();
						if(!isset($r->producto_historico_id))
						{
							$this->db->query('insert into producto_historico SELECT * from productos where idProductos='.$producto->idProductos);
						}
						$this->db->query('insert into carro_producto_historico SELECT cc_id,idProductos,carro_id,fecha,cantidad from carro_producto
								where carro_id='.$this->usuario->getCarro()->getIdCarro().' and idProductos='.$producto->idProductos);
						$this->db->query('update carro_historico set status="2" where carro_historico_id='.$this->usuario->getCarro()->getIdCarro());
					}
						
					$this->db->query('delete from carro where idUsuarios='.$this->usuario->getIdUsuarios());
					$this->db->close();
					
					$payment_data=null;
					$permissions = $facebook->api('/'.$user.'/permissions');
					
					$post_obj = array(
							'message' => 'Acabo de comprar en la tienda mas pulenta y preferida por todos, Guaripolo Store',
							'picture' => 'http://userserve-ak.last.fm/serve/252/4578161.jpg',
							'link' =>'http://www.guaripolostore.com'
					);
					
					try{
						$ret_obj = $facebook->api('/me/feed', 'POST',$post_obj);
						if (!$ret_obj) {
							throw new Exception('Post unsuccessful!');
						}
					} catch (Exception $e) {
						echo 'Spammer';
					}
					
					//carga de vista de transaccion correcta
					$this->load->view('checksocialout');
					
					
					
				}
				else
				{
					$data['mensaje']="No puede comprar mas de 1 producto similar por este medio";
					//carga de vista de mensaje ( problema )
					$this->load->view('mensaje',$data);
					
				}
				
			}
			else
			{	
				$data['mensaje']="Todos los productos de su carro deben tener like";
				//carga de vista de mensaje ( problema )
				$this->load->view('mensaje',$data);
			}
		}
		else
		{
			$params = array('scope' => 'user_photos,friends_photos,user_likes,friends_likes,read_stream,publish_stream,read_insights' );
			$loginUrl = $facebook->getLoginUrl($params);
			
			
			$data['mensaje']= "Para usar esta caracteristicas es necesario que se logee usando la aplicacion de guaripolo, puede hacerlo haciendo click en el siguiente enlace:
			<br><a href='".$loginUrl."'>Login con Guaripolo FacebookAPP </a>
			<br>sera redirigido al carro una vez logeado.";
			//carga de vista de mensaje ( problema )
			$this->load->view('mensaje',$data);
		}
		
		
		
		
	}
	

	
}
?>